{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "114a57a1",
   "metadata": {},
   "source": [
    "## series"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8f540cac",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b496fbf4",
   "metadata": {},
   "outputs": [],
   "source": [
    "s = pd.Series(data = [100, 'a', {'dic1':5}],\n",
    "              index = pd.Index(['id1', 20, 'third'], name='my_idx'),\n",
    "              dtype = 'object',\n",
    "              name = 'my_name')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d69d2055",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "my_idx\n",
       "id1              100\n",
       "20                 a\n",
       "third    {'dic1': 5}\n",
       "Name: my_name, dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "3546e880",
   "metadata": {},
   "outputs": [],
   "source": [
    "sl = pd.Series(\n",
    "    data = [67,78,75],\n",
    "    index = pd.Index(['数学','语文','英语'],name ='学科')\n",
    "\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bcfcfcbb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "学科\n",
       "数学    67\n",
       "语文    78\n",
       "英语    75\n",
       "dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sl"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9529f48d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([67, 78, 75], dtype=int64)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sl.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a98d18ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['数学', '语文', '英语'], dtype='object', name='学科')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sl.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b6a3f8e1",
   "metadata": {},
   "outputs": [],
   "source": [
    "s2 = pd.Series(\n",
    "    data = [67,78,75],\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "e8925562",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    67\n",
       "1    78\n",
       "2    75\n",
       "dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "583443fc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3,)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "895cf5fd",
   "metadata": {},
   "source": [
    "## DataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "3377ed02",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = [\n",
    "    [1,'a',1.2],\n",
    "    [2,'b',2.2],\n",
    "    [3,'c',3.2]\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "d8f6bd2b",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(data = data,\n",
    "                 index = ['row_0','row_1','row_2'],\n",
    "                 columns = ['col_0','col_1','col_2']\n",
    "                 \n",
    "                 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "fceb62ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>col_0</th>\n",
       "      <th>col_1</th>\n",
       "      <th>col_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>row_0</th>\n",
       "      <td>1</td>\n",
       "      <td>a</td>\n",
       "      <td>1.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_1</th>\n",
       "      <td>2</td>\n",
       "      <td>b</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_2</th>\n",
       "      <td>3</td>\n",
       "      <td>c</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       col_0 col_1  col_2\n",
       "row_0      1     a    1.2\n",
       "row_1      2     b    2.2\n",
       "row_2      3     c    3.2"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "2637a344",
   "metadata": {},
   "outputs": [],
   "source": [
    "data = {\n",
    "    'col_0':[1,2,3],\n",
    "    'col_1':['a','b','c'],\n",
    "    'col_2':[1.2,2.2,3.2]\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "696b301e",
   "metadata": {},
   "outputs": [],
   "source": [
    "df =pd.DataFrame(\n",
    "    data = data,\n",
    "    index = ['row_0','row_1','row_2']\n",
    "\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "6af4e40b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>col_0</th>\n",
       "      <th>col_1</th>\n",
       "      <th>col_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>row_0</th>\n",
       "      <td>1</td>\n",
       "      <td>a</td>\n",
       "      <td>1.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_1</th>\n",
       "      <td>2</td>\n",
       "      <td>b</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_2</th>\n",
       "      <td>3</td>\n",
       "      <td>c</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       col_0 col_1  col_2\n",
       "row_0      1     a    1.2\n",
       "row_1      2     b    2.2\n",
       "row_2      3     c    3.2"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a40eea5",
   "metadata": {},
   "source": [
    "# DataFrame一般取值方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "b0379881",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "row_0    1\n",
       "row_1    2\n",
       "row_2    3\n",
       "Name: col_0, dtype: int64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['col_0']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "91672e1e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>col_0</th>\n",
       "      <th>col_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>row_0</th>\n",
       "      <td>1</td>\n",
       "      <td>1.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_1</th>\n",
       "      <td>2</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_2</th>\n",
       "      <td>3</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       col_0  col_2\n",
       "row_0      1    1.2\n",
       "row_1      2    2.2\n",
       "row_2      3    3.2"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[['col_0','col_2']]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "809071ab",
   "metadata": {},
   "source": [
    "# iloc:强大的切片取值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "77020b38",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>col_0</th>\n",
       "      <th>col_1</th>\n",
       "      <th>col_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>row_1</th>\n",
       "      <td>2</td>\n",
       "      <td>b</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_2</th>\n",
       "      <td>3</td>\n",
       "      <td>c</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       col_0 col_1  col_2\n",
       "row_1      2     b    2.2\n",
       "row_2      3     c    3.2"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[1:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "886797b0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>col_1</th>\n",
       "      <th>col_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>row_1</th>\n",
       "      <td>b</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>row_2</th>\n",
       "      <td>c</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      col_1  col_2\n",
       "row_1     b    2.2\n",
       "row_2     c    3.2"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[1:3,1:3]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33eb2709",
   "metadata": {},
   "source": [
    "* 课后练习\n",
    "> 1.iloc\n",
    "> 2.loc\n",
    "> 3.iat\n",
    "> 4.at"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d8465bc",
   "metadata": {},
   "source": [
    "# 常用的基本函数\n",
    "1.汇总函数\n",
    "2.特征统计函数\n",
    "3.唯一值函数\n",
    "4.替换函数\n",
    "5.排序函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "4a64c999",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>School</th>\n",
       "      <th>Grade</th>\n",
       "      <th>Name</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Transfer</th>\n",
       "      <th>Test_Number</th>\n",
       "      <th>Test_Date</th>\n",
       "      <th>Time_Record</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Gaopeng Yang</td>\n",
       "      <td>Female</td>\n",
       "      <td>158.9</td>\n",
       "      <td>46.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/5</td>\n",
       "      <td>0:04:34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Changqiang You</td>\n",
       "      <td>Male</td>\n",
       "      <td>166.5</td>\n",
       "      <td>70.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/9/4</td>\n",
       "      <td>0:04:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Mei Sun</td>\n",
       "      <td>Male</td>\n",
       "      <td>188.9</td>\n",
       "      <td>89.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/9/12</td>\n",
       "      <td>0:05:22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Fudan University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Xiaojuan Sun</td>\n",
       "      <td>Female</td>\n",
       "      <td>NaN</td>\n",
       "      <td>41.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>0:04:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Fudan University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Gaojuan You</td>\n",
       "      <td>Male</td>\n",
       "      <td>174.0</td>\n",
       "      <td>74.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/11/6</td>\n",
       "      <td>0:05:22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>Fudan University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Xiaojuan Sun</td>\n",
       "      <td>Female</td>\n",
       "      <td>153.9</td>\n",
       "      <td>46.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/10/17</td>\n",
       "      <td>0:04:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Tsinghua University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Li Zhao</td>\n",
       "      <td>Female</td>\n",
       "      <td>160.9</td>\n",
       "      <td>50.0</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/9/22</td>\n",
       "      <td>0:04:03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Chengqiang Chu</td>\n",
       "      <td>Female</td>\n",
       "      <td>153.9</td>\n",
       "      <td>45.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2020/1/5</td>\n",
       "      <td>0:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Chengmei Shen</td>\n",
       "      <td>Male</td>\n",
       "      <td>175.3</td>\n",
       "      <td>71.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>0:04:58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Tsinghua University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Chunpeng Lv</td>\n",
       "      <td>Male</td>\n",
       "      <td>155.7</td>\n",
       "      <td>51.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/11/6</td>\n",
       "      <td>0:05:05</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200 rows × 10 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                            School      Grade            Name  Gender  Height  \\\n",
       "0    Shanghai Jiao Tong University   Freshman    Gaopeng Yang  Female   158.9   \n",
       "1                Peking University   Freshman  Changqiang You    Male   166.5   \n",
       "2    Shanghai Jiao Tong University     Senior         Mei Sun    Male   188.9   \n",
       "3                 Fudan University  Sophomore    Xiaojuan Sun  Female     NaN   \n",
       "4                 Fudan University  Sophomore     Gaojuan You    Male   174.0   \n",
       "..                             ...        ...             ...     ...     ...   \n",
       "195               Fudan University     Junior    Xiaojuan Sun  Female   153.9   \n",
       "196            Tsinghua University     Senior         Li Zhao  Female   160.9   \n",
       "197  Shanghai Jiao Tong University     Senior  Chengqiang Chu  Female   153.9   \n",
       "198  Shanghai Jiao Tong University     Senior   Chengmei Shen    Male   175.3   \n",
       "199            Tsinghua University  Sophomore     Chunpeng Lv    Male   155.7   \n",
       "\n",
       "     Weight Transfer  Test_Number   Test_Date Time_Record  \n",
       "0      46.0        N            1   2019/10/5     0:04:34  \n",
       "1      70.0        N            1    2019/9/4     0:04:20  \n",
       "2      89.0        N            2   2019/9/12     0:05:22  \n",
       "3      41.0        N            2    2020/1/3     0:04:08  \n",
       "4      74.0        N            2   2019/11/6     0:05:22  \n",
       "..      ...      ...          ...         ...         ...  \n",
       "195    46.0        N            2  2019/10/17     0:04:31  \n",
       "196    50.0        N            3   2019/9/22     0:04:03  \n",
       "197    45.0        N            1    2020/1/5     0:04:48  \n",
       "198    71.0        N            2    2020/1/7     0:04:58  \n",
       "199    51.0        N            1   2019/11/6     0:05:05  \n",
       "\n",
       "[200 rows x 10 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('E:\\浏览器下载\\data_analysis-master\\data_analysis-master\\week02\\data\\learn_pandas.csv')\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "c148fe65",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Height</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Gaopeng Yang</td>\n",
       "      <td>Female</td>\n",
       "      <td>158.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Changqiang You</td>\n",
       "      <td>Male</td>\n",
       "      <td>166.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Mei Sun</td>\n",
       "      <td>Male</td>\n",
       "      <td>188.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Xiaojuan Sun</td>\n",
       "      <td>Female</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Gaojuan You</td>\n",
       "      <td>Male</td>\n",
       "      <td>174.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>Xiaojuan Sun</td>\n",
       "      <td>Female</td>\n",
       "      <td>153.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Li Zhao</td>\n",
       "      <td>Female</td>\n",
       "      <td>160.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>Chengqiang Chu</td>\n",
       "      <td>Female</td>\n",
       "      <td>153.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Chengmei Shen</td>\n",
       "      <td>Male</td>\n",
       "      <td>175.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Chunpeng Lv</td>\n",
       "      <td>Male</td>\n",
       "      <td>155.7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               Name  Gender  Height\n",
       "0      Gaopeng Yang  Female   158.9\n",
       "1    Changqiang You    Male   166.5\n",
       "2           Mei Sun    Male   188.9\n",
       "3      Xiaojuan Sun  Female     NaN\n",
       "4       Gaojuan You    Male   174.0\n",
       "..              ...     ...     ...\n",
       "195    Xiaojuan Sun  Female   153.9\n",
       "196         Li Zhao  Female   160.9\n",
       "197  Chengqiang Chu  Female   153.9\n",
       "198   Chengmei Shen    Male   175.3\n",
       "199     Chunpeng Lv    Male   155.7\n",
       "\n",
       "[200 rows x 3 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[['Name','Gender','Height']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "2d0f4664",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>School</th>\n",
       "      <th>Grade</th>\n",
       "      <th>Name</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Transfer</th>\n",
       "      <th>Test_Number</th>\n",
       "      <th>Test_Date</th>\n",
       "      <th>Time_Record</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Gaopeng Yang</td>\n",
       "      <td>Female</td>\n",
       "      <td>158.9</td>\n",
       "      <td>46.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/5</td>\n",
       "      <td>0:04:34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Changqiang You</td>\n",
       "      <td>Male</td>\n",
       "      <td>166.5</td>\n",
       "      <td>70.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/9/4</td>\n",
       "      <td>0:04:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Mei Sun</td>\n",
       "      <td>Male</td>\n",
       "      <td>188.9</td>\n",
       "      <td>89.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/9/12</td>\n",
       "      <td>0:05:22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Fudan University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Xiaojuan Sun</td>\n",
       "      <td>Female</td>\n",
       "      <td>NaN</td>\n",
       "      <td>41.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>0:04:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Fudan University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Gaojuan You</td>\n",
       "      <td>Male</td>\n",
       "      <td>174.0</td>\n",
       "      <td>74.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/11/6</td>\n",
       "      <td>0:05:22</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          School      Grade            Name  Gender  Height  \\\n",
       "0  Shanghai Jiao Tong University   Freshman    Gaopeng Yang  Female   158.9   \n",
       "1              Peking University   Freshman  Changqiang You    Male   166.5   \n",
       "2  Shanghai Jiao Tong University     Senior         Mei Sun    Male   188.9   \n",
       "3               Fudan University  Sophomore    Xiaojuan Sun  Female     NaN   \n",
       "4               Fudan University  Sophomore     Gaojuan You    Male   174.0   \n",
       "\n",
       "   Weight Transfer  Test_Number  Test_Date Time_Record  \n",
       "0    46.0        N            1  2019/10/5     0:04:34  \n",
       "1    70.0        N            1   2019/9/4     0:04:20  \n",
       "2    89.0        N            2  2019/9/12     0:05:22  \n",
       "3    41.0        N            2   2020/1/3     0:04:08  \n",
       "4    74.0        N            2  2019/11/6     0:05:22  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "b7148e34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>School</th>\n",
       "      <th>Grade</th>\n",
       "      <th>Name</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Transfer</th>\n",
       "      <th>Test_Number</th>\n",
       "      <th>Test_Date</th>\n",
       "      <th>Time_Record</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>Fudan University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Xiaojuan Sun</td>\n",
       "      <td>Female</td>\n",
       "      <td>153.9</td>\n",
       "      <td>46.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/10/17</td>\n",
       "      <td>0:04:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Tsinghua University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Li Zhao</td>\n",
       "      <td>Female</td>\n",
       "      <td>160.9</td>\n",
       "      <td>50.0</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/9/22</td>\n",
       "      <td>0:04:03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Chengqiang Chu</td>\n",
       "      <td>Female</td>\n",
       "      <td>153.9</td>\n",
       "      <td>45.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2020/1/5</td>\n",
       "      <td>0:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Shanghai Jiao Tong University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Chengmei Shen</td>\n",
       "      <td>Male</td>\n",
       "      <td>175.3</td>\n",
       "      <td>71.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>0:04:58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Tsinghua University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Chunpeng Lv</td>\n",
       "      <td>Male</td>\n",
       "      <td>155.7</td>\n",
       "      <td>51.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/11/6</td>\n",
       "      <td>0:05:05</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            School      Grade            Name  Gender  Height  \\\n",
       "195               Fudan University     Junior    Xiaojuan Sun  Female   153.9   \n",
       "196            Tsinghua University     Senior         Li Zhao  Female   160.9   \n",
       "197  Shanghai Jiao Tong University     Senior  Chengqiang Chu  Female   153.9   \n",
       "198  Shanghai Jiao Tong University     Senior   Chengmei Shen    Male   175.3   \n",
       "199            Tsinghua University  Sophomore     Chunpeng Lv    Male   155.7   \n",
       "\n",
       "     Weight Transfer  Test_Number   Test_Date Time_Record  \n",
       "195    46.0        N            2  2019/10/17     0:04:31  \n",
       "196    50.0        N            3   2019/9/22     0:04:03  \n",
       "197    45.0        N            1    2020/1/5     0:04:48  \n",
       "198    71.0        N            2    2020/1/7     0:04:58  \n",
       "199    51.0        N            1   2019/11/6     0:05:05  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "c9f81c06",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 200 entries, 0 to 199\n",
      "Data columns (total 10 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   School       200 non-null    object \n",
      " 1   Grade        200 non-null    object \n",
      " 2   Name         200 non-null    object \n",
      " 3   Gender       200 non-null    object \n",
      " 4   Height       183 non-null    float64\n",
      " 5   Weight       189 non-null    float64\n",
      " 6   Transfer     188 non-null    object \n",
      " 7   Test_Number  200 non-null    int64  \n",
      " 8   Test_Date    200 non-null    object \n",
      " 9   Time_Record  200 non-null    object \n",
      "dtypes: float64(2), int64(1), object(7)\n",
      "memory usage: 15.8+ KB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "e04ab3d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Test_Number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>183.000000</td>\n",
       "      <td>189.000000</td>\n",
       "      <td>200.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>163.218033</td>\n",
       "      <td>55.015873</td>\n",
       "      <td>1.645000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>8.608879</td>\n",
       "      <td>12.824294</td>\n",
       "      <td>0.722207</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>145.400000</td>\n",
       "      <td>34.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>157.150000</td>\n",
       "      <td>46.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>161.900000</td>\n",
       "      <td>51.000000</td>\n",
       "      <td>1.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>167.500000</td>\n",
       "      <td>65.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>193.900000</td>\n",
       "      <td>89.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           Height      Weight  Test_Number\n",
       "count  183.000000  189.000000   200.000000\n",
       "mean   163.218033   55.015873     1.645000\n",
       "std      8.608879   12.824294     0.722207\n",
       "min    145.400000   34.000000     1.000000\n",
       "25%    157.150000   46.000000     1.000000\n",
       "50%    161.900000   51.000000     1.500000\n",
       "75%    167.500000   65.000000     2.000000\n",
       "max    193.900000   89.000000     3.000000"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6655b43b",
   "metadata": {},
   "source": [
    "# 特征统计函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a9eec4a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>158.9</td>\n",
       "      <td>46.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>166.5</td>\n",
       "      <td>70.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>188.9</td>\n",
       "      <td>89.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>41.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>174.0</td>\n",
       "      <td>74.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>153.9</td>\n",
       "      <td>46.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>160.9</td>\n",
       "      <td>50.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>153.9</td>\n",
       "      <td>45.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>175.3</td>\n",
       "      <td>71.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>155.7</td>\n",
       "      <td>51.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Height  Weight\n",
       "0     158.9    46.0\n",
       "1     166.5    70.0\n",
       "2     188.9    89.0\n",
       "3       NaN    41.0\n",
       "4     174.0    74.0\n",
       "..      ...     ...\n",
       "195   153.9    46.0\n",
       "196   160.9    50.0\n",
       "197   153.9    45.0\n",
       "198   175.3    71.0\n",
       "199   155.7    51.0\n",
       "\n",
       "[200 rows x 2 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo = df[['Height','Weight']]\n",
    "df_demo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "f7f7c4ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Height    163.218033\n",
       "Weight     55.015873\n",
       "dtype: float64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "640d4bc7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Height    183\n",
       "Weight    189\n",
       "dtype: int64"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "d70399cb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Height    193\n",
       "Weight      2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_demo.idxmax()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "877d035e",
   "metadata": {},
   "source": [
    "# 唯一值函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "ea56893e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Tsinghua University              69\n",
       "Shanghai Jiao Tong University    57\n",
       "Fudan University                 40\n",
       "Peking University                34\n",
       "Name: School, dtype: int64"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['School'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f431fc37",
   "metadata": {},
   "source": [
    "## 实践1\n",
    "* 请计算:\n",
    "      1.所有不同学校的身高,体重的均值,最大值,最小值\n",
    "      2.所有不同学校的男女比例的情况\n",
    "      3.不同学校的Grade的数量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "fae8b7a7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Shanghai Jiao Tong University', 'Peking University',\n",
       "       'Fudan University', 'Tsinghua University'], dtype=object)"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['School'].unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e3cdfbb",
   "metadata": {},
   "source": [
    "* query"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "24fe5e8b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>School</th>\n",
       "      <th>Grade</th>\n",
       "      <th>Name</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "      <th>Transfer</th>\n",
       "      <th>Test_Number</th>\n",
       "      <th>Test_Date</th>\n",
       "      <th>Time_Record</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Changqiang You</td>\n",
       "      <td>Male</td>\n",
       "      <td>166.5</td>\n",
       "      <td>70.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/9/4</td>\n",
       "      <td>0:04:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Juan Xu</td>\n",
       "      <td>Female</td>\n",
       "      <td>164.8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/10/5</td>\n",
       "      <td>0:04:05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Changjuan You</td>\n",
       "      <td>Female</td>\n",
       "      <td>161.4</td>\n",
       "      <td>47.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/5</td>\n",
       "      <td>0:04:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Changmei Xu</td>\n",
       "      <td>Female</td>\n",
       "      <td>151.6</td>\n",
       "      <td>43.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>0:04:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Changli Lv</td>\n",
       "      <td>Female</td>\n",
       "      <td>148.7</td>\n",
       "      <td>41.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/11/13</td>\n",
       "      <td>0:04:54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Gaopeng Shi</td>\n",
       "      <td>Female</td>\n",
       "      <td>162.9</td>\n",
       "      <td>48.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/9/12</td>\n",
       "      <td>0:04:58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Gaoli Zhao</td>\n",
       "      <td>Male</td>\n",
       "      <td>175.4</td>\n",
       "      <td>78.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/10/8</td>\n",
       "      <td>0:03:32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Xiaojuan Qin</td>\n",
       "      <td>Male</td>\n",
       "      <td>NaN</td>\n",
       "      <td>79.0</td>\n",
       "      <td>Y</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/12/10</td>\n",
       "      <td>0:04:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Qiang Han</td>\n",
       "      <td>Male</td>\n",
       "      <td>185.3</td>\n",
       "      <td>87.0</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2020/1/7</td>\n",
       "      <td>0:03:58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Quan Chu</td>\n",
       "      <td>Female</td>\n",
       "      <td>154.7</td>\n",
       "      <td>43.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/11/28</td>\n",
       "      <td>0:04:47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Xiaojuan Chu</td>\n",
       "      <td>Male</td>\n",
       "      <td>162.4</td>\n",
       "      <td>58.0</td>\n",
       "      <td>Y</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/11/29</td>\n",
       "      <td>0:03:42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Changquan Chu</td>\n",
       "      <td>Female</td>\n",
       "      <td>159.6</td>\n",
       "      <td>45.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/12/9</td>\n",
       "      <td>0:04:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Gaoli Xu</td>\n",
       "      <td>Female</td>\n",
       "      <td>157.3</td>\n",
       "      <td>48.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/12/11</td>\n",
       "      <td>0:05:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Xiaopeng Qin</td>\n",
       "      <td>Male</td>\n",
       "      <td>172.8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/12/23</td>\n",
       "      <td>0:05:29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Gaoquan Zhou</td>\n",
       "      <td>Male</td>\n",
       "      <td>166.8</td>\n",
       "      <td>70.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/9/5</td>\n",
       "      <td>0:04:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Qiang You</td>\n",
       "      <td>Female</td>\n",
       "      <td>170.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/12/31</td>\n",
       "      <td>0:04:27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>83</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Mei Xu</td>\n",
       "      <td>Female</td>\n",
       "      <td>154.2</td>\n",
       "      <td>39.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/11/5</td>\n",
       "      <td>0:04:29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Feng Zheng</td>\n",
       "      <td>Female</td>\n",
       "      <td>162.6</td>\n",
       "      <td>49.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/11/5</td>\n",
       "      <td>0:04:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Xiaopeng Han</td>\n",
       "      <td>Female</td>\n",
       "      <td>164.1</td>\n",
       "      <td>53.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/12/18</td>\n",
       "      <td>0:05:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Changmei Feng</td>\n",
       "      <td>Female</td>\n",
       "      <td>163.8</td>\n",
       "      <td>56.0</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/11/8</td>\n",
       "      <td>0:04:41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Changpeng Zhao</td>\n",
       "      <td>Male</td>\n",
       "      <td>181.3</td>\n",
       "      <td>83.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/10/24</td>\n",
       "      <td>0:04:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>101</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Xiaoli Zhou</td>\n",
       "      <td>Female</td>\n",
       "      <td>166.8</td>\n",
       "      <td>55.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/28</td>\n",
       "      <td>0:05:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>102</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Chengli Zhao</td>\n",
       "      <td>Male</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/13</td>\n",
       "      <td>0:03:55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>116</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Feng Zhao</td>\n",
       "      <td>Male</td>\n",
       "      <td>167.2</td>\n",
       "      <td>66.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2020/1/3</td>\n",
       "      <td>0:04:56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>120</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Sophomore</td>\n",
       "      <td>Peng Han</td>\n",
       "      <td>Female</td>\n",
       "      <td>147.8</td>\n",
       "      <td>34.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/9/19</td>\n",
       "      <td>0:03:32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>127</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Changquan Han</td>\n",
       "      <td>Male</td>\n",
       "      <td>173.4</td>\n",
       "      <td>77.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/11/4</td>\n",
       "      <td>0:03:56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>130</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Mei Feng</td>\n",
       "      <td>Female</td>\n",
       "      <td>NaN</td>\n",
       "      <td>51.0</td>\n",
       "      <td>N</td>\n",
       "      <td>3</td>\n",
       "      <td>2019/9/28</td>\n",
       "      <td>0:05:29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>132</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Chunpeng Qian</td>\n",
       "      <td>Female</td>\n",
       "      <td>161.6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/11/10</td>\n",
       "      <td>0:04:10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>140</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Qiang Zhang</td>\n",
       "      <td>Female</td>\n",
       "      <td>152.7</td>\n",
       "      <td>43.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/11/30</td>\n",
       "      <td>0:05:27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>147</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Juan You</td>\n",
       "      <td>Male</td>\n",
       "      <td>169.2</td>\n",
       "      <td>69.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/31</td>\n",
       "      <td>0:05:28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>159</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Chengpeng Zhao</td>\n",
       "      <td>Female</td>\n",
       "      <td>156.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/9/2</td>\n",
       "      <td>0:03:53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>183</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Junior</td>\n",
       "      <td>Xiaofeng Zhao</td>\n",
       "      <td>Female</td>\n",
       "      <td>159.9</td>\n",
       "      <td>46.0</td>\n",
       "      <td>N</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/10/17</td>\n",
       "      <td>0:05:20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>185</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Freshman</td>\n",
       "      <td>Chunmei Wang</td>\n",
       "      <td>Female</td>\n",
       "      <td>151.2</td>\n",
       "      <td>43.0</td>\n",
       "      <td>N</td>\n",
       "      <td>2</td>\n",
       "      <td>2019/12/10</td>\n",
       "      <td>0:04:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>Peking University</td>\n",
       "      <td>Senior</td>\n",
       "      <td>Yanmei Qian</td>\n",
       "      <td>Female</td>\n",
       "      <td>160.3</td>\n",
       "      <td>49.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>2019/12/3</td>\n",
       "      <td>0:05:08</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                School      Grade            Name  Gender  Height  Weight  \\\n",
       "1    Peking University   Freshman  Changqiang You    Male   166.5    70.0   \n",
       "9    Peking University     Junior         Juan Xu  Female   164.8     NaN   \n",
       "20   Peking University     Junior   Changjuan You  Female   161.4    47.0   \n",
       "29   Peking University  Sophomore     Changmei Xu  Female   151.6    43.0   \n",
       "30   Peking University     Senior      Changli Lv  Female   148.7    41.0   \n",
       "32   Peking University   Freshman     Gaopeng Shi  Female   162.9    48.0   \n",
       "35   Peking University   Freshman      Gaoli Zhao    Male   175.4    78.0   \n",
       "36   Peking University   Freshman    Xiaojuan Qin    Male     NaN    79.0   \n",
       "38   Peking University   Freshman       Qiang Han    Male   185.3    87.0   \n",
       "45   Peking University   Freshman        Quan Chu  Female   154.7    43.0   \n",
       "54   Peking University   Freshman    Xiaojuan Chu    Male   162.4    58.0   \n",
       "57   Peking University   Freshman   Changquan Chu  Female   159.6    45.0   \n",
       "59   Peking University     Junior        Gaoli Xu  Female   157.3    48.0   \n",
       "61   Peking University  Sophomore    Xiaopeng Qin    Male   172.8     NaN   \n",
       "72   Peking University     Junior    Gaoquan Zhou    Male   166.8    70.0   \n",
       "75   Peking University     Junior       Qiang You  Female   170.0    56.0   \n",
       "83   Peking University  Sophomore          Mei Xu  Female   154.2    39.0   \n",
       "86   Peking University     Senior      Feng Zheng  Female   162.6    49.0   \n",
       "88   Peking University   Freshman    Xiaopeng Han  Female   164.1    53.0   \n",
       "96   Peking University   Freshman   Changmei Feng  Female   163.8    56.0   \n",
       "99   Peking University   Freshman  Changpeng Zhao    Male   181.3    83.0   \n",
       "101  Peking University  Sophomore     Xiaoli Zhou  Female   166.8    55.0   \n",
       "102  Peking University     Junior    Chengli Zhao    Male     NaN     NaN   \n",
       "116  Peking University     Senior       Feng Zhao    Male   167.2    66.0   \n",
       "120  Peking University  Sophomore        Peng Han  Female   147.8    34.0   \n",
       "127  Peking University     Senior   Changquan Han    Male   173.4    77.0   \n",
       "130  Peking University     Senior        Mei Feng  Female     NaN    51.0   \n",
       "132  Peking University     Senior   Chunpeng Qian  Female   161.6     NaN   \n",
       "140  Peking University   Freshman     Qiang Zhang  Female   152.7    43.0   \n",
       "147  Peking University     Senior        Juan You    Male   169.2    69.0   \n",
       "159  Peking University     Junior  Chengpeng Zhao  Female   156.0    44.0   \n",
       "183  Peking University     Junior   Xiaofeng Zhao  Female   159.9    46.0   \n",
       "185  Peking University   Freshman    Chunmei Wang  Female   151.2    43.0   \n",
       "194  Peking University     Senior     Yanmei Qian  Female   160.3    49.0   \n",
       "\n",
       "    Transfer  Test_Number   Test_Date Time_Record  \n",
       "1          N            1    2019/9/4     0:04:20  \n",
       "9          N            3   2019/10/5     0:04:05  \n",
       "20         N            1   2019/10/5     0:04:08  \n",
       "29         N            2    2020/1/3     0:04:28  \n",
       "30         N            2  2019/11/13     0:04:54  \n",
       "32         N            1   2019/9/12     0:04:58  \n",
       "35         N            2   2019/10/8     0:03:32  \n",
       "36         Y            1  2019/12/10     0:04:10  \n",
       "38         N            3    2020/1/7     0:03:58  \n",
       "45         N            1  2019/11/28     0:04:47  \n",
       "54         Y            3  2019/11/29     0:03:42  \n",
       "57         N            2   2019/12/9     0:04:18  \n",
       "59         N            2  2019/12/11     0:05:13  \n",
       "61         N            1  2019/12/23     0:05:29  \n",
       "72         N            2    2019/9/5     0:04:24  \n",
       "75         N            3  2019/12/31     0:04:27  \n",
       "83         N            2   2019/11/5     0:04:29  \n",
       "86         N            2   2019/11/5     0:04:11  \n",
       "88         N            1  2019/12/18     0:05:20  \n",
       "96         N            3   2019/11/8     0:04:41  \n",
       "99         N            2  2019/10/24     0:04:08  \n",
       "101        N            1  2019/10/28     0:05:24  \n",
       "102      NaN            1  2019/10/13     0:03:55  \n",
       "116        N            1    2020/1/3     0:04:56  \n",
       "120      NaN            2   2019/9/19     0:03:32  \n",
       "127        N            1   2019/11/4     0:03:56  \n",
       "130        N            3   2019/9/28     0:05:29  \n",
       "132        N            1  2019/11/10     0:04:10  \n",
       "140        N            1  2019/11/30     0:05:27  \n",
       "147      NaN            1  2019/10/31     0:05:28  \n",
       "159        N            1    2019/9/2     0:03:53  \n",
       "183        N            1  2019/10/17     0:05:20  \n",
       "185        N            2  2019/12/10     0:04:24  \n",
       "194      NaN            1   2019/12/3     0:05:08  "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.query(\" School ==  'Peking University'\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "0b63c509",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\KIki\\AppData\\Local\\Temp\\ipykernel_8212\\2333244980.py:2: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
      "  df_mean=df.groupby('School')['Height','Weight'].mean()\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>School</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Fudan University</th>\n",
       "      <td>162.408824</td>\n",
       "      <td>54.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Peking University</th>\n",
       "      <td>162.977419</td>\n",
       "      <td>55.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shanghai Jiao Tong University</th>\n",
       "      <td>163.932727</td>\n",
       "      <td>56.442308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tsinghua University</th>\n",
       "      <td>163.149206</td>\n",
       "      <td>54.223881</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                   Height     Weight\n",
       "School                                              \n",
       "Fudan University               162.408824  54.000000\n",
       "Peking University              162.977419  55.666667\n",
       "Shanghai Jiao Tong University  163.932727  56.442308\n",
       "Tsinghua University            163.149206  54.223881"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  均值\n",
    "df_mean=df.groupby('School')['Height','Weight'].mean()\n",
    "df_mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "879fc4dc",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\KIki\\AppData\\Local\\Temp\\ipykernel_8212\\947932861.py:2: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
      "  df_max=df.groupby('School')['Height','Weight'].max()\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>School</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Fudan University</th>\n",
       "      <td>177.3</td>\n",
       "      <td>81.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Peking University</th>\n",
       "      <td>185.3</td>\n",
       "      <td>87.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shanghai Jiao Tong University</th>\n",
       "      <td>188.9</td>\n",
       "      <td>89.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tsinghua University</th>\n",
       "      <td>193.9</td>\n",
       "      <td>79.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Height  Weight\n",
       "School                                       \n",
       "Fudan University                177.3    81.0\n",
       "Peking University               185.3    87.0\n",
       "Shanghai Jiao Tong University   188.9    89.0\n",
       "Tsinghua University             193.9    79.0"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  最大值\n",
    "df_max=df.groupby('School')['Height','Weight'].max()\n",
    "df_max"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "0fad2c50",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\KIki\\AppData\\Local\\Temp\\ipykernel_8212\\3824120764.py:2: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.\n",
      "  df_min=df.groupby('School')['Height','Weight'].min()\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Height</th>\n",
       "      <th>Weight</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>School</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Fudan University</th>\n",
       "      <td>147.3</td>\n",
       "      <td>34.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Peking University</th>\n",
       "      <td>147.8</td>\n",
       "      <td>34.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shanghai Jiao Tong University</th>\n",
       "      <td>145.4</td>\n",
       "      <td>34.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tsinghua University</th>\n",
       "      <td>150.5</td>\n",
       "      <td>36.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               Height  Weight\n",
       "School                                       \n",
       "Fudan University                147.3    34.0\n",
       "Peking University               147.8    34.0\n",
       "Shanghai Jiao Tong University   145.4    34.0\n",
       "Tsinghua University             150.5    36.0"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 最小值\n",
    "df_min=df.groupby('School')['Height','Weight'].min()\n",
    "df_min"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "fd3fc686",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzkAAAGdCAYAAAAxAL3IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCnklEQVR4nOzde1zP9/8//ttLdD4pkay8ROVUiiRZK4xyaMLWlt6SJN60FtriI+QQ5jSytyFTjVqZ89loi6hZqyWRlkPCMhZyiKRevz/8en69vCq9OoiX2/VyeV7W8/l8PB/P+/P5fFmve4/DUySRSCQgIiIiIiJSEM2aOgAiIiIiIqKGxCSHiIiIiIgUCpMcIiIiIiJSKExyiIiIiIhIoTDJISIiIiIihcIkh4iIiIiIFAqTHCIiIiIiUihMcoiIiIiISKE0b+oAiIgaW0VFBf7++29oaWlBJBI1dThERERUCxKJBA8ePICRkRGaNZOvbYZJDhEpvL///hvGxsZNHQYRERHVwbVr1/Dee+/JdQyTHCJSeFpaWgCe/09SW1u7iaMhIiKi2rh//z6MjY2F3+PyYJJDRAqvsouatrY2kxwiIqK3TF26mnPiASIiIiIiUihMcoiIiIiISKEwySEiIiIiIoXCJIeIiIiIiBQKkxwiIiIiIlIoTHKIiIiIiEihMMkhIiIiIiKFwiSHiIiIiIgUCl8GSkTvjO7zjqCZinpTh0H01shfOqypQyAiqhO25BARERERkUJhkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUmOAisqKkLr1q2Rn59fr3rEYjFWr17dIDFVio6Ohq6uboPW2RREIhF2797dpDGEhYXB2tq6SWOoK3lj//fff9G6dWtcv3698YIiIiKitx6THAUWHh6OESNGQCwWIywsDCKRqMalOmlpafD393+NkTeu6pK2uiQLhYWFGDJkSMMEVkfBwcFITEwU1n18fODu7t4o56r8rPz2229S20tLS6Gvrw+RSISkpKRGOTcAtGrVCt7e3pg3b16jnYOIiIjefkxyFFRJSQm+//57TJgwAcDzL8KFhYXC8t5772HBggVS26pjYGAAdXW+QLEqhoaGUFFRabT6y8vLUVFRUWMZTU1N6OvrN1oMLzM2NkZUVJTUtl27dkFTU/O1nH/8+PGIjY3FnTt3Xsv5iIiI6O3DJEdBHTx4ECoqKrC3twfw/IuwoaGhsCgpKUFLSwuGhoZo06YN1q9fDxMTE6ioqMDIyAiBgYFCXS+3fIhEImzatAkjR46Euro6zMzMsHfvXqnz7927F2ZmZlBVVUX//v0RExMDkUiEe/fuSZU7cuQIunTpAk1NTbi6ukolW87OzggKCpIq7+7uDh8fH2F9y5YtsLW1Fa5lzJgxuHXrVv1u3gvnDwwMxFdffQU9PT0YGhoiLCxMqsyL3dUcHBwQEhIitf/27dto0aIFTpw4AeB5i0dwcDDatWsHDQ0N9OnTR6rlo7Ib3969e9G1a1eoqKigoKAASUlJsLOzg4aGBnR1ddGvXz9cvXoVgHQLVFhYGGJiYrBnzx6h1SUpKQkDBgxAQECATGzKyspSrUC1MW7cOMTHx+Px48fCts2bN2PcuHEyZUNCQmBubg51dXWYmppizpw5KCsrq7H+TZs2oUuXLlBVVUXnzp2xbt06qf3dunWDkZERdu3aJVfcRERE9O5gkqOgkpOT0atXr1qV3bFjB7755hts2LABeXl52L17NywtLWs8Zv78+fDw8EBWVhaGDh0KLy8v4S/rV65cwccffwx3d3ecOXMGkyZNwuzZs2XqKCkpwYoVK7BlyxacOHECBQUFCA4Olus6y8rKsHDhQpw5cwa7d+9Gfn6+VBJUXzExMdDQ0MDp06exbNkyLFiwAEePHq2yrJeXF+Lj4yGRSIRtCQkJMDIygqOjIwAgICAAqampiI+PR1ZWFj755BO4uroiLy9POKakpARff/01Nm3ahHPnzkFPTw/u7u5wcnJCVlYWUlNT4e/vX2UXw+DgYHh4eAgJY2FhIRwcHODn54e4uDiUlpYKZbdu3Yp27dphwIABct2TXr16QSwWY8eOHQCAgoICnDhxAmPHjpUpq6WlhejoaJw/fx5r1qxBZGQkvvnmm2rrjo2Nxdy5cxEeHo6cnBwsXrwYc+bMQUxMjFQ5Ozs7JCcnV1tPaWkp7t+/L7UQERHRu4NJjoK6evUqjIyMalW2oKAAhoaG+PDDD2FiYgI7OztMnDixxmN8fHzg6emJTp06YfHixXj48CF+//13AMCGDRtgYWGB5cuXw8LCAp999lmViUdZWRnWr18PW1tb9OzZEwEBAXK3Kvj6+mLIkCEwNTWFvb09IiIicOjQITx8+FCueqpjZWWFefPmwczMDN7e3rC1ta02Rg8PD/z99984efKksC0uLg6enp4QiUQoKChAVFQUfvrpJzg6OqJjx44IDg7G+++/L9X9q6ysDOvWrYODgwMsLCzw7NkzFBcXY/jw4ejYsSO6dOmCcePGwcTERCYGTU1NqKmpQUVFRWi1U1ZWxqhRowAAe/bsEcpGR0fDx8enxvFY1fH19cXmzZuFeoYOHQoDAwOZcqGhoXBwcIBYLIabmxuCg4Oxbdu2auudN28eVq5ciVGjRqFDhw4YNWoUpk2bhg0bNkiVMzIyElqyqrJkyRLo6OgIi7GxsdzXSERERG8vJjkK6vHjx1BVVa1V2U8++QSPHz+GqakpJk6ciF27duHZs2c1HmNlZSX8rKGhAW1tbaGbWG5uLnr37i1V3s7OTqYOdXV1dOzYUVhv27at3F3N0tPT4ebmBhMTE2hpacHJyQnA88StIbx4na+K0cDAAIMHD0ZsbCyA5y1aqamp8PLyAgCcPXsW5eXlMDc3h6amprAcP34cly5dEupRVlaWOq+enh58fHzg4uICNzc3rFmzpsYxVFVRVVXF2LFjhcQkIyMD2dnZdW71+s9//oPU1FRcvnwZ0dHR8PX1rbJcQkIC+vXrB0NDQ2hqaiI0NLTaZ/Po0SNcunQJEyZMkLo/ixYtkro/AKCmpoaSkpJq45s1axaKi4uF5dq1a3W6TiIiIno7MclRUK1atcLdu3drVdbY2Bi5ublYt24d1NTUMGXKFHzwwQc1jp1o0aKF1LpIJHrlAPna1PFiV69mzZpJrQOQiunRo0dwcXGBtrY2YmNjkZaWJozTePr0abXn1dbWRnFxscz2e/fuQUdH55Ux1nSdXl5e2L59O8rKyhAXFwdLS0uh69/Dhw+hpKSE9PR0ZGZmCktOTg7WrFkj1KGmpibTuhIVFYXU1FQ4ODggISEB5ubmMjOcvYqfnx+OHj2K69evIyoqCgMGDED79u3lqqOSvr4+hg8fjgkTJuDJkydVzjBXmeANHToU+/fvx59//onZs2dX+2wqW98iIyOl7k92drbMtd65c6fKlqNKKioq0NbWllqIiIjo3cEkR0HZ2Njg/PnztS6vpqYGNzc3REREICkpCampqTh79mydzm1hYYE//vhDaltaWprc9RgYGEi1WJSXlyM7O1tYv3DhAoqKirB06VI4Ojqic+fOtWoJsrCwQHp6usz2jIwMmJubyx3ni0aMGIEnT57g8OHDiIuLE1pxgOfPpLy8HLdu3UKnTp2kFkNDw1fWbWNjg1mzZiElJQXdu3dHXFxcleWUlZVRXl4us93S0hK2traIjIxEXFxcta0vteXr64ukpCR4e3tDSUlJZn9KSgrat2+P2bNnw9bWFmZmZjV2MWvTpg2MjIxw+fJlmfvToUMHqbLZ2dmwsbGpV/xERESkuJo3dQDUOFxcXDBr1izcvXsXLVu2rLFsdHQ0ysvL0adPH6irq2Pr1q1QU1Or81/5J02ahFWrViEkJAQTJkxAZmYmoqOjAUCu8R8DBgzA9OnTceDAAXTs2BGrVq2Smp3NxMQEysrKWLt2LSZPnozs7GwsXLjwlfVOmzYNjo6OCA8Px6hRo1BeXo4ff/wRqampMjN5yUtDQwPu7u6YM2cOcnJy4OnpKewzNzeHl5cXvL29sXLlStjY2OD27dtITEyElZUVhg0bVmWdV65cwcaNG/HRRx/ByMgIubm5yMvLg7e3d5XlxWIxjhw5gtzcXOjr60NHR0dokfLz80NAQAA0NDQwcuTIel2rq6srbt++XW0riZmZGQoKChAfH4/evXvjwIEDr5wRbf78+QgMDISOjg5cXV1RWlqKP/74A3fv3sX06dMBPJ+YIT09HYsXL65X/ERERKS42JKjoCwtLdGzZ88aB3lX0tXVRWRkJPr16wcrKyscO3YM+/btq/O7Vzp06IDt27dj586dsLKywnfffSfMribPO2V8fX0xbtw4eHt7w8nJCaampujfv7+w38DAANHR0fjpp5/QtWtXLF26FCtWrHhlvQ4ODjh06BAOHTqEfv36wdnZGSkpKUhMTET37t3lv+CXeHl54cyZM3B0dJSZHCAqKgre3t6YMWMGLCws4O7ujrS0tConEaikrq6OCxcuYPTo0TA3N4e/vz+mTp2KSZMmVVl+4sSJsLCwgK2tLQwMDHDq1Clhn6enJ5o3bw5PT0+ZMVthYWEQi8W1vk6RSIRWrVpBWVm5yv0fffQRpk2bhoCAAFhbWyMlJQVz5sypsU4/Pz9s2rQJUVFRsLS0hJOTE6Kjo6Vacvbs2QMTExNhxjoiIiKil4kkLw96IIVx4MABfPnll8jOzkazZk2bz4aHh2P9+vUcAN7E8vPz0bFjR6SlpaFnz55S+8aNGweRSCS0ur2p7O3tERgYiDFjxtT6mPv37z+fZS1oG5qp8MW2RLWVv7TqFmYioteh8vd3cXGx3ONr2V1NgQ0bNgx5eXm4cePGa59Cd926dejduzf09fVx6tQpLF++XOZllPT6lJWVoaioCKGhobC3t5dJcCQSCZKSkqSmv34T/fvvvxg1apRUN0AiIiKilzHJUXBBQUFNct68vDwsWrQId+7cgYmJCWbMmIFZs2Y1SSwEnDp1Cv3794e5uTm2b98us18kEtU4KcCbolWrVvjqq6+aOgwiIiJ6w7G7GhEpPHZXI6obdlcjoqZUn+5qnHiAiIiIiIgUCrurEdE7I3u+C18MSkRE9A5gSw4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERESkUJjkEBERERGRQmGSQ0RERERECoVJDhERERERKRQmOUREREREpFCY5BARERERkUJhkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERESkUJjkEBERERGRQmGSQ0RERERECoVJDhERERERKRQmOUREREREpFCaN3UARESvS/d5R9BMRb2pwyAiIlIY+UuHNXUIVWJLDhERERERKRQmOUREREREpFCY5BARERERkUJhkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOS8oYqKitC6dWvk5+fXqx6xWIzVq1c3SEyVoqOjoaur26B1NgWRSITdu3c3aQxhYWGwtrZu0hiaUlJSEkQiEe7du1frY+zt7bFjx47GC4qIiIjeekxy3lDh4eEYMWIExGIxwsLCIBKJalyqk5aWBn9//9cYeeOqLmmrS7JQWFiIIUOGNExgdRQcHIzExERh3cfHB+7u7o1yrqo+N++//36jnKsxhYaGYubMmaioqGjqUIiIiOgNxSTnDVRSUoLvv/8eEyZMAPD8i3BhYaGwvPfee1iwYIHUtuoYGBhAXZ0vP6yKoaEhVFRUGq3+8vLyV34R19TUhL6+fqPF8LKoqCipz83evXtf27kbypAhQ/DgwQMcOnSoqUMhIiKiNxSTnDfQwYMHoaKiAnt7ewDPvwgbGhoKi5KSErS0tGBoaIg2bdpg/fr1MDExgYqKCoyMjBAYGCjU9XLLh0gkwqZN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ExPMmDEDs2bNapJYCDh16hT69+8Pc3NzqRdtVhKJRLh69WoTRNY0ZsyY0dQhEBER0RuO3dWISOGxuxoREVHjeFO7q3HiASIiIiIiUihMcoiIiIiISKFwTA4RvTOy57vI3dxNREREbx+25BARERERkUJhkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERESkUJjkEBERERGRQmGSQ0RERERECoVJDhERERERKRQmOUREREREpFCY5BARERERkUJhkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERESkUJjkEBERERGRQmGSQ0RERERECqV5UwdARPS6dJ93BM1U1Js6DHpH5C8d1tQhEBG9s9iSQ0RERERECoVJDhERERERKRQmOUREREREpFCY5BARERERkUJhkkNERERERApFIZKcoqIitG7dGvn5+bU+JiwsDNbW1o0WkzwaIpb8/HyIRCJkZmbW+hixWIzVq1fX67zvOpFIhN27dzdpDG/SZ1le8sb+77//onXr1rh+/XrjBUVERERvPYVIcsLDwzFixAiIxWJh265du2Bvbw8dHR1oaWmhW7duCAoKarIYG5uxsTEKCwvRvXv3ass4OztL3YO0tDT4+/s3WkzOzs4QiUTVLs7Ozo127ppUl9zVJVkoLCzEkCFDGiawOgoODkZiYqKw7uPjA3d390Y5V+Wz++2336S2l5aWQl9fHyKRCElJSY1ybgBo1aoVvL29MW/evEY7BxEREb393vr35JSUlOD777/HkSNHhG2JiYn49NNPER4ejo8++ggikQjnz5/H0aNHmzDSxqWkpARDQ0O5jjEwMGikaJ7buXMnnj59CgC4du0a7OzscOzYMXTr1g0AoKys3Kjnfx3kvefyKi8vh0gkQrNm1f89QlNTE5qamo0ax4uMjY0RFRUFe3t7YduuXbugqamJO3fuNPr5x48fj169emH58uXQ09Nr9PMRERHR2+etb8k5ePAgVFRUpL5w7du3D/369cOXX34JCwsLmJubw93dHf/73/9kjt+yZQvEYjF0dHTw2Wef4cGDB8K+w4cP4/3334euri709fUxfPhwXLp0Sdhf2UVs586d6N+/P9TV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iIiI6qVO3dUGDBiA48ePN3QsRERERERE9da8LgcNGTIEM2fOxNmzZ9GrVy9oaGhI7f/oo48aJDgiIiIiIiJ5iSQSiUTeg5o1q74BSCQSoby8vF5BERE1pPv370NHRwfFxcXQ1tZu6nCIiIioFurz+7tOLTkVFRV1OYyIiIiIiKjR1XsK6SdPnjREHERERERERA2iTklOeXk5Fi5ciHbt2kFTUxOXL18GAMyZMwfff/99gwZIREREREQkjzolOeHh4YiOjsayZcugrKwsbO/evTs2bdrUYMERERERERHJq05Jzg8//ICNGzfCy8sLSkpKwvYePXrgwoULDRYcERERERGRvOqU5Ny4cQOdOnWS2V5RUYGysrJ6B0VERERERFRXdUpyunbtiuTkZJnt27dvh42NTb2DIiIiIiIiqqs6TSE9d+5cjBs3Djdu3EBFRQV27tyJ3Nxc/PDDD9i/f39Dx0hERERERFRrdWrJGTFiBPbt24djx45BQ0MDc+fORU5ODvbt24dBgwY1dIxERERERES1JpJIJJKmDoKIqDFVvjHZOGgbmqmoN3U4RET0lspfOqypQ3inVP7+Li4uhra2tlzH1vtloERERERERG+SWo/JadmyJUQiUa3K3rlzp84BERERERER1Uetk5zVq1cLPxcVFWHRokVwcXFB3759AQCpqak4cuQI5syZ0+BBEhERERER1VadxuSMHj0a/fv3R0BAgNT2b7/9FseOHcPu3bsbKj4ionrjmBwiImoIHJPzer32MTlHjhyBq6urzHZXV1ccO3asLlUSERERERE1iDolOfr6+tizZ4/M9j179kBfX1+uuoqKitC6dWvk5+fX+piwsDBYW1vLdZ7G0hCx5OfnQyQSITMzs9bHiMViqS6EJD+RSNTkrY5v0me5KSQlJUEkEuHevXu1Psbe3h47duxovKCIiIjorVenJGf+/PkICQmBm5sbFi1ahEWLFsHNzQ0zZ87E/Pnz5aorPDwcI0aMgFgsFrbt2rUL9vb20NHRgZaWFrp164agoKC6hPpWMDY2RmFhIbp3715tGWdnZ6l7kJaWBn9//0aLydnZGSKRqNrF2dm50c5dk+qSu7okC4WFhRgyZEjDBFZHwcHBSExMFNZ9fHzg7u7eKOeq6jm+//77jXKuxhQaGoqZM2eioqKiqUMhIiKiN1StJx54kY+PD7p0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9y7atGkjrB8/fhxDhgwR1nv37o1r1641XHRERERERERykivJadOmDa5cuQIAePr0KTIyMmBvby/sf/DgAVq0aNGwERIREREREclBriRn6NChmDlzJpKTkzFr1iyoq6tLzaiWlZWFjh07NniQREREREREtSXXFNILFy7EqFGj4OTkBE1NTcTExEBZWVnYv3nzZgwePLjBgyQiIiIiIqotkUQikch7UHFxMTQ1NaGkpCS1/c6dO9DU1JRKfIiImtr9+/eho6OD4uJiaGtrN3U4REREVAv1+f1d55eBVkVPT68u1RERERERETUYucbkEBERERERvemY5BARERERkUJhkkNERERERAqFSQ4RERERESmUOk08QET0Nuo+7wiaqag3dRhECid/6bCmDoGISApbcoiIiIiISKEwySEiIiIiIoXCJIeIiIiIiBQKkxwiIiIiIlIoTHKIiIiIiEihMMkhIiIiIiKFwiRHARUVFaF169bIz89vsDrFYjFWr15d7X5nZ2cEBQU12PleB5FIhN27dzdpDGFhYbC2tm7SGJpSUlISRCIR7t27V+tj7O3tsWPHjsYLioiIiN56THIUUHh4OEaMGAGxWAwAyM/Ph0gkEhZ9fX0MHjwYf/75Z4Odc+fOnVi4cGGD1Ved6pKtuiQLhYWFGDJkSMMEVkfBwcFITEwU1n18fODu7t4o53rxM1C5vP/++41yrsYUGhqKmTNnoqKioqlDISIiojcUkxwFU1JSgu+//x4TJkyQ2Xfs2DEUFhbiyJEjePjwIYYMGSLXX9BroqenBy0trQap63UxNDSEiopKo9VfXl7+yi/impqa0NfXb7QYXhYVFYXCwkJh2bt372s7d0MZMmQIHjx4gEOHDjV1KERERPSGYpKjYA4ePAgVFRXY29vL7NPX14ehoSFsbW2xYsUK/PPPPzh9+jQA4OTJk3B0dISamhqMjY0RGBiIR48eVXueTZs2QVdXV2iFeLm7mlgsxuLFi+Hr6wstLS2YmJhg48aNUnWkpKTA2toaqqqqsLW1xe7duyESiZCZmVnv++Ds7IzAwEB89dVX0NPTg6GhIcLCwqTKvNhdzcHBASEhIVL7b9++jRYtWuDEiRMAgNLSUgQHB6Ndu3bQ0NBAnz59kJSUJJSPjo6Grq4u9u7di65du0JFRQUFBQVISkqCnZ0dNDQ0oKuri379+uHq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T2Gfubk5vLy84O3tjZ07d+LKlSv4/fffsWTJEhw4cKDaOq9cuYJZs2YhNTUVV69exc8//4y8vDyh29XLxGIxsrKykJubi3///RdlZWXCPj8/PyxduhQSiQQjR46s17W+qK7X9iomJiZQVlbG2rVrcfnyZezdu/eV71Kq7WcxOTkZgwcPrnNsREREpNiY5CgYS0tL9OzZE9u2bav1MVZWVjh+/Dj++usvODo6wsbGBnPnzq12AoP3338fBw4cQGhoKNauXVunOLW1tbFv3z5kZmbC2toas2fPxty5cwGg2jFFwPMk69ChQzh06BD69esHZ2dnpKSkIDExEd27d69TLC/y8vLCmTNn4OjoKDM5QFRUFLy9vTFjxgxYWFjA3d0daWlpVU4iUEldXR0XLlzA6NGjYW5uDn9/f0ydOhWTJk2qsvzEiRNhYWEBW1tbGBgY4NSpU8I+T09PNG/eHJ6enjL3KCwsTHj5a13U5dpexcDAANHR0fjpp5/QtWtXLF26VEhkq1Obz+KNGzeQkpKC8ePH1zk2IiIiUmwiyYtz5pJCOHDgAL788ktkZ2ejWbO3J4+NjY3F+PHjUVxcXO1Yi3dZfn4+OnbsiLS0NPTs2VNq37hx4yASiRAdHd00wb1GISEhuHv3rsx7l2py//7957OsBW1DMxX1RoyO6N2Uv3RYU4dARAqo8vd3cXExtLW15TqWY3IU0LBhw5CXl4cbN2680TNK/fDDDzA1NUW7du1w5swZhISEwMPDgwnOS8rKylBUVITQ0FDY29vLJDgSiQRJSUlS018rstatW0vNnEZERET0MiY5CiooKKipQ3ilmzdvYu7cubh58ybatm2LTz75BOHh4U0d1hvn1KlT6N+/P8zNzaVetFlJJBLh6tWrTRBZ05gxY0ZTh0BERERvOHZXIyKFx+5qRI2L3dWIqDHUp7va2zNgg4iIiIiIqBbYXY2I3hnZ813k/ksQERERvX3YkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERESkUJjkEBERERGRQmGSQ0RERERECoVJDhERERERKRQmOUREREREpFCY5BARERERkUJhkkNERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOERER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EBER0duHLTlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERESkUJjkEBERERGRQmGSQ0RERERECoVJDhERERERKRQmOUREREREpFCaN3UARESNTSKRAADu37/fxJEQERFRbVX+3q78PS4PJjlEpPCKiooAAMbGxk0cCREREcnrwYMH0NHRkesYJjlEpPD09PQAAAUFBXL/T5Iazv3792FsbIxr165BW1u7qcN5Z/E5vDn4LN4MfA5vjpefhUQiwYMHD2BkZCR3XUxyiEjhNWv2fPihjo4Of4G9AbS1tfkc3gB8Dm8OPos3A5/Dm+PFZ1HXP05y4gEiIiIiIlIoTHKIiIiIiEihMMkhIoWnoqKCefPmQUVFpalDeafxObwZ+BzeHHwWbwY+hzdHQz4LkaQuc7IRERERERG9odiSQ0RERERECoVJDhERERERKRQmOUREREREpFCY5BARERERkUJhkkNECu1///sfxGIxVFVV0adPH/z+++9NHZLCO3HiBNzc3GBkZASRSITdu3dL7ZdIJJg7dy7atm0LNTU1fPjhh8jLy2uaYBXYkiVL0Lt3b2hpaaF169Zwd3dHbm6uVJknT55g6tSp0NfXh6amJkaPHo1//vmniSJWTN999x2srKyElxv27dsXhw4dEvbzGTSNpUuXQiQSISgoSNjGZ/F6hIWFQSQSSS2dO3cW9jfUc2CSQ0QKKyEhAdOnT8e8efOQkZGBHj16wMXFBbdu3Wrq0BTao0eP0KNHD/zvf/+rcv+yZcsQERGB9evX4/Tp09DQ0ICLiwuePHnymiNVbMePH8fUqVPx22+/4ejRoygrK8PgwYPx6NEjocy0adOwb98+/PTTTzh+/Dj+/vtvjBo1qgmjVjzvvfceli5divT0dPzxxx8YMGAARowYgXPnzgHgM2gKaWlp2LBhA6ysrKS281m8Pt26dUNhYaGwnDx5UtjXYM9BQkSkoOzs7CRTp04V1svLyyVGRkaSJUuWNGFU7xYAkl27dgnrFRUVEkNDQ8ny5cuFbffu3ZOoqKhIfvzxxyaI8N1x69YtCQDJ8ePHJRLJ8/veokULyU8//SSUycnJkQCQpKamNlWY74SWLVtKNm3axGfQBB48eCAxMzOTHD16VOLk5CT54osvJBIJ/z28TvPmzZP06NGjyn0N+RzYkkNECunp06dIT0/Hhx9+KGxr1qwZPvzwQ6SmpjZhZO+2K1eu4ObNm1LPRUdHB3369OFzaWTFxcUAAD09PQBAeno6ysrKpJ5F586dYWJiwmfRSMrLyxEfH49Hjx6hb9++fAZNYOrUqRg2bJjUPQf47+F1y8vLg5GREUxNTeHl5YWCggIADfscmjdoxEREb4h///0X5eXlaNOmjdT2Nm3a4MKFC00UFd28eRMAqnwulfuo4VVUVCAoKAj9+vVD9+7dATx/FsrKytDV1ZUqy2fR8M6ePYu+ffviyZMn0NTUxK5du9C1a1dkZmbyGbxG8fHxyMjIQFpamsw+/nt4ffr06YPo6GhYWFigsLAQ8+fPh6OjI7Kzsxv0OTDJISIiUnBTp05Fdna2VL93en0sLCyQmZmJ4uJibN++HePGjcPx48ebOqx3yrVr1/DFF1/g6NGjUFVVbepw3mlDhgwRfrayskKfPn3Qvn17bNu2DWpqag12HnZXIyKF1KpVKygpKcnMyPLPP//A0NCwiaKiynvP5/L6BAQEYP/+/fj111/x3nvvCdsNDQ3x9OlT3Lt3T6o8n0XDU1ZWRqdOndCrVy8sWbIEPXr0wJo1a/gMXqP09HTcunULPXv2RPPmzdG8eXMcP34cERERaN68Odq0acNn0UR0dXVhbm6OixcvNui/CSY5RKSQlJWV0atXLyQmJgrbKioqkJiYiL59+zZhZO+2Dh06wNDQUOq53L9/H6dPn+ZzaWASiQQBAQHYtWsXfvnlF3To0EFqf69evdCiRQupZ5Gbm4uCggI+i0ZWUVGB0tJSPoPXaODAgTh79iwyMzOFxdbWFl5eXsLPfBZN4+HDh7h06RLatm3boP8m2F2NiBTW9OnTMW7cONja2sLOzg6rV6/Go0ePMH78+KYOTaE9fPgQFy9eFNavXLmCzMxM6OnpwcTEBEFBQVi0aBHMzMzQoUMHzJkzB0ZGRnB3d2+6oBXQ1KlTERcXhz179kBLS0voz66jowM1NTXo6OhgwoQJmD59OvT09KCtrY3PP/8cffv2hb29fRNHrzhmzZqFIUOGwMTEBA8ePEBcXBySkpJw5MgRPoPXSEtLSxiPVklDQwP6+vrCdj6L1yM4OBhubm5o3749/v77b8ybNw9KSkrw9PRs2H8T9ZgBjojojbd27VqJiYmJRFlZWWJnZyf57bffmjokhffrr79KAMgs48aNk0gkz6eRnjNnjqRNmzYSFRUVycCBAyW5ublNG7QCquoZAJBERUUJZR4/fiyZMmWKpGXLlhJ1dXXJyJEjJYWFhU0XtALy9fWVtG/fXqKsrCwxMDCQDBw4UPLzzz8L+/kMms6LU0hLJHwWr8unn34qadu2rURZWVnSrl07yaeffiq5ePGisL+hnoNIIpFIGjA5IyIiIiIialIck0NERERERAqFSQ4RERERESkUJjlERERERKRQmOQQEREREZFCYZJDREREREQKhUkOEREREREpFCY5RERERP9f+3UgAwAAADDI3/oeX1kErEgOAACwIjkAAMCK5AAAACuSAwAArEgOAACwEhVJWra2PSCCAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 男女比例\n",
    "import matplotlib.pyplot as plt \n",
    "series=df.groupby('School')['Gender'].value_counts()\n",
    "\n",
    "series.plot(kind=\"barh\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "f1bc1726",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "School                         Grade    \n",
       "Fudan University               Junior       12\n",
       "                               Senior       11\n",
       "                               Freshman      9\n",
       "                               Sophomore     8\n",
       "Peking University              Freshman     13\n",
       "                               Junior        8\n",
       "                               Senior        8\n",
       "                               Sophomore     5\n",
       "Shanghai Jiao Tong University  Senior       22\n",
       "                               Junior       17\n",
       "                               Freshman     13\n",
       "                               Sophomore     5\n",
       "Tsinghua University            Junior       22\n",
       "                               Freshman     17\n",
       "                               Sophomore    16\n",
       "                               Senior       14\n",
       "Name: Grade, dtype: int64"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# grade数量\n",
    "grade=df.groupby('School')['Grade'].value_counts()\n",
    "grade"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "03573353",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
